﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MiniIOC.IOCLIbs
{
    public interface IServiceCollection : ICollection<ServiceDescriptor>
    {
        void AddScoped<TService, TImplement>()
            where TService : class
            where TImplement : TService;
        void AddScoped(Type seviceType, Type implementType);
        void AddSington<TService, TImplement>()
            where TService : class
            where TImplement : TService;
        void AddSington<TService>(object instance) where TService : class;
        void AddSington(Type seviceType, Type implementType);
        void AddSington(Type seviceType, Type implementType, object? instacne);
        void AddTransient<TService, TImplement>()
            where TService : class
            where TImplement : TService;
        void AddTransient(Type seviceType, Type implementType);
    }
}
